/*
ID: guoxu1
PROG: zerosum
LANG: C++
*/
#include <fstream>
#include <string>
using namespace std;

ifstream fin( "zerosum.in" );
ofstream fout( "zerosum.out" );

#define cin fin
#define cout fout

void G( int cur, int last, int m, int sum, const string& ret )
{
  if( cur > m )
  {
    if( sum == 0 ) cout << ret << endl;
    return;
  }

  char sz[2] = {0};
  sprintf( sz, "%d", cur );

  //case ' ':
  int scur = cur;
  if( last < 0 ) scur = -cur;
  G( cur + 1, last * 10 + scur, m, sum - last + ( last * 10 + scur ), ret + " " + sz );

  //case '+':
  G( cur + 1, cur, m, sum + cur, ret + "+" + sz );

  //case '-':
  G( cur + 1, -cur, m, sum - cur, ret + "-" + sz );
}

int main()
{
  int n = 0;
  cin >> n;
  G( 2, 1, n, 1, "1" );
  return 0;
}
